package com.limeng.catalina.mapper;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Mapper {

    private MappedHost host ;

    public void addHost(MappedHost mappedHost){
        host = mappedHost;
    }

    public MappedHost getHost(){
        return host;
    }

    public void addWrapper(String context,String url,MappedWrapper wrapper){
        Map<String,MappedWrapper> wrappers = host.getContexts().get(context).getWrappers();
        if(wrappers == null){
            wrappers = new HashMap<>();
        }
        wrappers.put(url, wrapper);
        host.getContexts().get(context).setWrappers(wrappers);
    }

    public MappedWrapper getWrapper(String context,String url){
        return host.getContexts().get(context).getWrappers().get(url);
    }

    public void setContext(String contextName){
        Map<String, MappedContext> contexts = host.getContexts();
        if(contexts==null){
            contexts = new HashMap<>();
        }
        MappedContext context = new MappedContext(contextName,new HashMap<String, MappedWrapper>());
        contexts.put(contextName, context);
        host.setContexts(contexts);
    }

    public Set<String> getContextNames(){
        return host.getContexts().keySet();
    }

    public MappedContext getContext(String contextName){
        return host.getContexts().get(contextName);
    }

}
